﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class Player : MonoBehaviour
{
    public float speed = 0.05f; // 飞机移动速度
    public GameObject zidan; // 子弹对象
    float t = 0; // 记录侦测时间
    public AudioClip zidanMusic; // 开火音效
    public AudioClip baozaMusic; // 爆炸音效
    public GameObject scoreText, lifeText; // 得分与生命，文本对象

    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Game Start");
    }

    // Update is called once per frame
    void Update()
    {
        playerMove();
        fire();
        display();
    }
    // 显示UI
    void display()
    {
        scoreText.GetComponent<Text>().text = "得分：" + Data.score;
        lifeText.GetComponent<Text>().text = "生命：" + Data.life;
        if (Data.life <= 0)
        {
            Debug.Log("游戏结束");
            SceneManager.LoadScene("lose");
        }
        if(Data.score >= 1000)
        {
            Debug.Log("游戏胜利");
            SceneManager.LoadScene("win");
        }
    }
    // 飞机碰撞监测
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "diren") // 碰到的对象的标签tag是diren时
        {
            
            Data.life--; // 生命减一
            GetComponent<AudioSource>().PlayOneShot(baozaMusic); // 播放飞机爆炸音效
            Destroy(collision.gameObject); // 销毁碰到的对象
            transform.position = new Vector3(0, -3, 0); // 飞机移动到某个位置

        }
        if (collision.tag == "xuegao") // 碰到的对象的标签tag是xuegao时
        {
            //if(Data.life < 3)
                Data.life++; // 生命加一
            Destroy(collision.gameObject); // 销毁碰到的对象
        }
    }
    // 飞机移动
    void playerMove()
    {
        // 左
        if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
        {
            if (this.transform.position.x > -8.5f)
                this.transform.Translate(-speed, 0, 0);
            else
                this.transform.position = new Vector3(8.5f, this.transform.position.y, this.transform.position.z);
        }
        // 右
        if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
        {
            if (this.transform.position.x < 8.5f)
                this.transform.Translate(speed, 0, 0);
            else
                this.transform.position = new Vector3(-8.5f, this.transform.position.y, this.transform.position.z);
        }
        // 上
        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
        {
            if (this.transform.position.y < 4.0f)
                this.transform.Translate(0, speed, 0);
            else
                this.transform.position = new Vector3(this.transform.position.x, -4.0f, this.transform.position.z);
        }
        // 下
        if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
        {
            if (this.transform.position.y > -4.4f)
                this.transform.Translate(0, -speed, 0);
            else
                this.transform.position = new Vector3(this.transform.position.x, -4.4f, this.transform.position.z);
        }
    }
    // 开火
    void fire()
    {
        // Time.deltaTime常量
        t += Time.deltaTime;

        // 0 1 2 左 中 右
        if (Input.GetMouseButton(0)) // 按下鼠标左键
        {
            if (t > 0.15f)
            {
            
                /*Instantiate(生成的预制体，位置，方向);*/
                // Quaternion.identity 表示预制体本身的方向
                Instantiate(zidan, this.transform.position, Quaternion.identity); // 生成子弹
                // GetComponent<组件名>().方法名;
                this.GetComponent<AudioSource>().PlayOneShot(zidanMusic); // 播放一次开火音效

                t = 0;
            }
        }
    }
    
}
